package ink.lovejinhu.leetcode;

import java.util.ArrayList;
import java.util.List;

/**
 * @author jinhu
 * created 2021-06-28 7:32
 */
public class Solution_0118 {
    /**
     * 杨辉三角
     *
     * @param numRows
     * @return
     */
    public List<List<Integer>> generate(int numRows) {
        //base case
//        if (numRows == 0) {
//            List<Integer> inner = new ArrayList<>();
//            List<List<Integer>> outer = new ArrayList<>();
//            outer.add(inner);
//            return outer;
//        }
//        if (numRows == 1) {
//            List<Integer> inner = new ArrayList<>();
//            inner.add(1);
//            List<List<Integer>> outer = new ArrayList<>();
//            outer.add(inner);
//            return outer;
//        }
        if (numRows == 2) {
            List<Integer> inner1 = new ArrayList<>();
            inner1.add(1);
            List<Integer> inner2 = new ArrayList<>();
            inner2.add(1);
            inner2.add(1);
            List<List<Integer>> outer = new ArrayList<>();
            outer.add(inner1);
            outer.add(inner2);
            return outer;
        }
        //考虑3以后的
        List<List<Integer>> generate = this.generate(numRows - 1);
        List<Integer> inner = new ArrayList<>();
        inner.add(1);

        for (int i = 0; i < generate.get(generate.size() - 1).size() - 1; i++) {
            int result = generate.get(generate.size() - 1).get(i) + generate.get(generate.size() - 1).get(i + 1);
            inner.add(result);
        }
        inner.add(1);
        generate.add(inner);
        return generate;
    }

    public static void main(String[] args) {
        Solution_0118 solution_0118 = new Solution_0118();
        List<List<Integer>> generate = solution_0118.generate(7);
        for (int i = 0; i < generate.size(); i++) {
            for (int j = 0; j < generate.get(i).size(); j++) {
                System.out.print(generate.get(i).get(j));
            }
            System.out.println();
        }
    }
}
